// pages/equipmentGroup/equipmentGroup.js
const app = getApp();
import CommonService from '../../utils/service/commonService.js';
import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //分组数据
    proList:[],
    //无数据
    showEmpty:false,
    //登录用户
    user:{},
    //总数    
    customerCount:0,
    projectCount:0,
    equipmentCount:0,
    userCount:0,
    regionCount:0,
    dealerCount:0, 
    //用户权限
    authority:null,
    //搜索词
    searchValue:'',
    optionGroup:[
      {text:'按机构', value:2},
      {text:'按城市', value:1}
    ],
    valueGroup:1,
    //主题
    theme:app.globalData.theme
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let user=app.globalData.userInfo;

    if(user){
      this.setData({
        user:app.globalData.userInfo,
        authority:app.globalData.authority
      })

      //龙湖集团按机构改成按大区
      if(user.departObj[0].companyId==100040){
        this.setData({
          optionGroup: [
            {text:'按大区', value:2},
            {text:'按城市', value:1}
          ]
        })
      }

      //获取分组数据
      this.getGroup();
      
    }else{
      wx.redirectTo({
        url: "/pages/login/login"
      })
    }  
  },

  //获取分组数据
  getGroup(){
    Toast.loading({
      duration: 0,
      //forbidClick: true,
      message: '加载中...'
    });

    let param={};
    
    //按登录用户的类型传不同参数
    let user=app.globalData.userInfo;

    if(user.departObj[0].type==2){
      //厂家按经销商,公司,项目
      param={
        groupKeys:["dealer","member","project"]
      }
    }else if(user.departObj[0].type==4){
      if(this.data.valueGroup==1){
        //客户按省，市，项目
        param={
          groupKeys:["province","city","project"]
        }
      }else if(this.data.valueGroup==2){
        //客户按项目，大区，项目（博林小程序增加一个中心）
        if(app.globalData.appId=='wx023734fef63cc3c0'){
          param={
            groupKeys:["member","region","centre","project"]
          }
        }else{
          param={
            groupKeys:["region","member","project"]
          }
        }
      }
    }else{
      //其他可切换
      if(this.data.valueGroup==1){
        //按省，市，公司
        param={
          groupKeys:["province","city","member"]
        }
      }else if(this.data.valueGroup==2){
        //按公司，城市，项目
        param={
          groupKeys:["member","city","project"]
        }
      }  
    }

    //搜索
    if(this.data.searchValue){
      param.searchKey='%'+this.data.searchValue+'%';
    }

    CommonService.getGroup(param).then(res=>{
      Toast.clear();
      if(res.data.data && res.data.data.data.length){
        console.log('设备分组');
        console.log(res.data.data);

        //处理总数
        this.allNums(res.data.data.count);

        let result=res.data.data.data;

        //计算故障设备数量
        for(let i=0;i<result.length;i++){
          result[i].repairNum=0;
          let customer=result[i].children;
          for(let j=0;j<customer.length;j++){ 
            customer[j].repairNum=0;             
            let project=customer[j].children;
            project.forEach(item => {
              if (item.content && item.content.length){
                let list=item.content;
                let num=0;
                for(let k=0;k<list.length;k++){
                  if(list[k].state==1){
                    num++
                  }
                }
                item.repairNum=num;
              }
              customer[j].repairNum+=item.repairNum;   
            });
            result[i].repairNum+=customer[j].repairNum;                       
          }
        }

        this.setData({ 
          proList: result
        })
      }else{
        this.setData({ 
          showEmpty: true
        })        
      }
    }).catch((error) => {
      Toast.clear();
      this.setData({ 
        showEmpty: true
      })         
    })
  },

  //搜索输入时
  onChangeSearch(e){
    this.setData({ 
      searchValue: e.detail.value
    })
    if(!e.detail.value){
      this.getGroup();
    }
  },

  //点击搜索
  onSearch() {    
    this.setData({ 
      proList: [],
      showEmpty: false,
      dealerCount:0,
      customerCount:0,
      projectCount:0,
      equipmentCount:0,
      regionCount:0,
      userCount:0
    })
    
    this.getGroup();
  },

  //处理总数
  allNums(count){
    this.setData({ 
      customerCount:count['客户总数'] ? count['客户总数'] : 0,
      projectCount:count['项目总数'] ? count['项目总数'] : 0,
      equipmentCount:count['设备总数'] ? count['设备总数'] : 0,
      dealerCount:count['经销商总数'] ? count['经销商总数'] : 0, 
      regionCount:count['大区总数'] ? count['大区总数'] : 0,
      userCount:count['工牌总数'] ? count['工牌总数'] : 0
    })  
  },

  //切换分组凭据
  onChangeGroup({detail}){
    this.setData({ 
      valueGroup: detail
    }) 
    this.getGroup();
  },

  //跳转设备列表（无搜索时才能跳转）
  goToList(){
    if(!this.data.searchValue){
      wx.reLaunch({
        url: "/pages/equipmentList/equipmentList"
      })
    }
  },

  //跳转人员列表（无搜索时才能跳转）
  goToUserList(){ 
    if(!this.data.searchValue){
      wx.reLaunch({
        url: "/packageA/pages/userList/userList"
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})